import sqlparse
from flask import jsonify


def sqlFormat(sql, action):
    # 使用 sqlparse 解析 SQL，检查语法
    try:
        parsed = sqlparse.parse(sql)
        if not parsed:
            return jsonify({'error': 'sql不能为空'}), 400
    except Exception as e:
        return jsonify({'error': f'无效的 SQL 语法: {str(e)}'}), 400

    # 根据 action 进行格式化或压缩
    if action == 'format':
        formatted_sql = sqlparse.format(sql, reindent=True, keyword_case='upper')
    elif action == 'compress':
        formatted_sql = sqlparse.format(sql, reindent=False, keyword_case='upper', strip_whitespace=True)
    else:
        return jsonify({'error': '无效的参数'}), 400

    return jsonify({'data': formatted_sql})
